match (left, right) {
                (BasicValueEnum::IntValue(l), BasicValueEnum::IntValue(r)) => {
                    let (l_norm, r_norm) = self.normalize_int_operands(l, r)?;
                    Ok(self.builder.build_int_mul(l_norm, r_norm, "mul")?.into())
                }
                (BasicValueEnum::FloatValue(l), BasicValueEnum::FloatValue(r)) => {
                    Ok(self.builder.build_float_mul(l, r, "fmul")?.into())
                }
                _ => Err(CompilerError::internal("Type mismatch in multiplication")),
            }
